πΏ λΈλμΉ κ΄λ¦¬ μ λ΅ (Branch Management Guide)
NOTE
λΈλμΉ λ€μ΄λ° 체κ³, μμ νλ¦, MR μμ± κ°μ΄λλ₯Ό μ 리ν Git λΈλμΉ μ λ΅ λ¬Έμ.
λ³Έ νλ‘μ νΈμ ν¨μ¨μ μΈ νμ κ³Ό μ½λ νμ§ κ΄λ¦¬λ₯Ό μν΄ μλμ λΈλμΉ μ λ΅μ μ€μν©λλ€.
π κ°μ΄λ λ΄μ©
1. λΈλμΉ μ²΄κ³ (Naming Convention)
λΈλμΉλ λͺ©μ μ λ°λΌ μΈ κ°μ§ κ³μΈ΅μΌλ‘ ꡬλΆνμ¬ μ΄μν©λλ€.
| λΆλ₯ | λΈλμΉ νμ | μ€λͺ |
|---|---|---|
| μ΄μ λΈλμΉ | main | μ΅μ’ λ°°ν¬μ© μ΅μμ λΈλμΉ (μ§μ Push λΆκ°) |
| νλ‘μ νΈ μμ | [νλ‘μ νΈλͺ
]/main | νλ‘μ νΈλ³ κΈ°μ€ λΈλμΉ (mainμμ νμ) |
| νλ‘μ νΈ κ°λ° | [νλ‘μ νΈλͺ
]/feature/[μμ
λͺ
] | κΈ°λ₯ κ°λ°, λ²κ·Έ μμ λ± μΌλ° μμ
([νλ‘μ νΈλͺ
]/main νμ) |
| SI 리ν©ν λ§ | feature/[μμ
λͺ
] | SI 리ν©ν λ§ μ μ© λ 립 μμ λΈλμΉ |
2. μμ νλ¦ (Workflow)
2.1 λΈλμΉ μμ± κ·μΉ
μλ‘μ΄ μμ μ μμν λλ μλμ λͺ λͺ κ·μΉμ μ€μνμ¬ μμ±ν©λλ€.
νμ:
[prefix]-[μμ λ΄μ©]_[μμ μ]_[λ μ§]
- μΌλ° μμ
μμ:
git checkout -b project-a/feature/add-bank_dev01_260219 - SI 리ν©ν λ§ μμ:
git checkout -b feature/perf-transInfo_dev01_260219
[ Prefix νμ© κ°μ΄λ ]
| Prefix | μ€λͺ |
|---|---|
add | μλ‘μ΄ κΈ°λ₯ μΆκ° |
fix | λ²κ·Έ λ° μ€λ₯ μμ |
refactor | μ½λ ꡬ쑰 κ°μ (κΈ°λ₯ λ³ν μμ) |
perf | 쿼리 νλ λ° μ±λ₯ μ΅μ ν |
remove | νμΌ λ° μ½λ μμ |
2.2 μ½λ λ°μ λ° λ¨Έμ§ (Merge)
mainμ§μ Push κΈμ§: λͺ¨λ μ½λλ **Merge Request(MR)**λ₯Ό ν΅ν΄μλ§ λ°μν μ μμ΅λλ€.- μ΅μ μν μ μ§: λΈλμΉ μμ± μ νμ μμ λΈλμΉμμ
pullμ λ°μ μ΅μ μνλ₯Ό μ μ§ν©λλ€.
2.3 λΈλμΉ κ΄λ¦¬ μμΉ
- κΈ°λ₯ λ¨μ μμ±: νλμ λΈλμΉμμλ νλμ κΈ°λ₯(λλ μ΄μ)λ§ μ²λ¦¬νλ κ²μ μμΉμΌλ‘ ν©λλ€.
- λ¨μ 컀λ°: ν΅ν©ν
μ€νΈ μμ λ± μμ λ²μμ μμ
μμλ
fix-testλ±μΌλ‘ λͺ νν ꡬλΆνμ¬ μ»€λ°ν©λλ€. - λ°μ ν μ¦μ μμ : MRμ΄ μλ£λ λΈλμΉλ μ¦μ μμ ν©λλ€. (λ―Έμμ μ 3κ°μ μ£ΌκΈ° μ κΈ° μμ )
3. Merge Request μμ± κ°μ΄λ
λͺ¨λ MRμ νμ κ°μ μνν 리뷰λ₯Ό μν΄ μλ μμμ μ€μνμ¬ μμ±ν΄ μ£ΌμΈμ.
3.1 μ£Όμ μμ± νλͺ©
- μμ λ°°κ²½: μμ μ μννκ² λ μ΄μ λ κΈ°ν μλ (μ: 쿼리 μλ κ°μ , SI μμ² λ°μ λ±)
- μ£Όμ λ³κ²½ μ¬ν: μ½λ μμ€μμμ μμ ν΅μ¬ λ΄μ μμ½ (μ: μΈλ±μ€ μΆκ°, μ‘°μΈ λ°©μ λ³κ²½ λ±)
- ν
μ€νΈ κ²°κ³Ό: μ μ μλ νμΈ κ²°κ³Ό (μ:
./gradlew buildμ±κ³΅ μ¬λΆ, κ²°κ³Ό μ€ν¬λ¦°μ· λ±) - κ΄λ ¨ μ΄μ: μ°κ΄λ μ΄μ λ²νΈ (μ:
#123)
3.2 λ¨Έμ§ μ΅μ (Merge Options) μ€μ
MR μμ± νλ©΄ νλ¨μμ μλ μ΅μ μ νμΈν΄ μ£ΌμΈμ.
| μ΅μ (Options) | μ€λͺ | νμ μ¬λΆ |
|---|---|---|
| Squash commitsβ¦ | μ¬λ¬ κ°μ 컀λ°μ νλμ κΉλν 컀λ°μΌλ‘ ν©μ³μ λ¨Έμ§ν©λλ€. | β νμ |
| Delete source branchβ¦ | λ¨Έμ§ μλ£ ν μμ λΈλμΉλ₯Ό μ격 μ μ₯μμμ μλ μμ ν©λλ€. | β οΈ κΆμ₯ |
π‘ μμ± ν λ° μ£Όμμ¬ν
- 쿼리 νλ μ: μ±λ₯ κ°μ μμΉ(
2.0s -> 0.2s)λ μ€ν κ³ν(Explain Plan) λΉκ΅ κ²°κ³Όλ₯Ό 첨λΆν΄ μ£ΌμΈμ. - μ»€λ° κ΄λ¦¬: Squash λ¨Έμ§ μ, μ΅μ’
μ»€λ° λ©μμ§λ
feat: [κ²°μ ] PGμ¬ μ°λκ³Ό κ°μ΄ λͺ νν μ λͺ©μΌλ‘ μμ λ°λλλ€. - μμ μ΅μν: 리뷰 ν¨μ¨μ μν΄ μμ λ¨μλ κ°κΈμ μκ² μ μ§ν©λλ€.
κ΄λ ¨ λ¬Έμ
- (Git) COMMIT 컨벀μ κ°μ΄λ - ν΅μ¬ κ°λ λ° νΉμ§ μ 리 β κ°μ νμ¬ Git μν¬νλ‘μμ λΈλμΉ μ λ΅κ³Ό μ§μ μ΄λ£¨λ μ»€λ° λ©μμ§ μμ± κ·μΉ
- (Git) μ€νμμ€ κΈ°μ¬ λ°©λ² λ° μμ β μ΄ νμ¬ GitLab λΈλμΉ μ λ΅μ μ€νμμ€ GitHub fork μν¬νλ‘μ λλΉμμΌ μ€λͺ νλ λ ΈνΈ